import axios from 'axios'
import {MessageBox, Message } from 'element-ui' //在js文件中，需单独引入提示

const server = axios.create({
    // baseURL: process.env.VUE_APP_API,  //根据不同环境应用不同接口
    baseURL:"https://lianghj.top:8888/api/private/v1/", //线上接口
    // baseURL: 'http://127.0.0.1:8888/api/private/v1', //本地服接口
    timeout:8000
})
//请求拦截
server.interceptors.request.use(config => {
    //给请求头统一加token，不用每次进后台，每个页面都加了
    // console.log('请求数据',config);
    let token=localStorage.getItem('token')
    if(token){
       config.headers.Authorization=token
    }
    return config
}, error => {
    Promise.reject(error)
})
//响应拦截
server.interceptors.response.use(res => {
  //如何处理token过期问题？1.需要后台响应值告诉你，一般后台会自定义一个状态码40001,或者返回无效token,token过期等 2.提醒用户登录过期,返回登录页面
  // console.log('响应数据',res);
   let code=res.data.meta.status
   let msg=res.data.meta.msg
    //  let {data,meta:{msg,status}}=res.data  //也可以解构下
   //处理无效token
   if(msg=="无效token"){
       MessageBox.confirm('token过期是否跳转登录页?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
          location.href="/login"
      }).catch(() => {
             
      })
   }

  //处理常见错误状态码 - 
  else if (code === 400|| code === 401 || code === 403|| code === 404|| code === 500) {
    Message.error({
      duration:1000,
      message:msg
  })
 }

  return res.data

}, error => {
  //处理接口错误请求，响应错误-一般都是网络问题，进行处理
    //  console.log('51响应错误',error);
     let {message}=error
    console.log(53,message); //解构出错误信息

    if (message == " Error") {
      message = "后端接口连接Network异常";
    }

    if(message.includes('timeout')){
      message = "系统接口请求超时";
    }

    Message.error({
      duration:1000,
      message:message
  })

    Promise.reject(error)
})
export default server    